package com.wu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wu.pojo.Articles;
import com.wu.pojo.model.DateYear;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author: 吴磊
 * @program: blog
 * @create: 2021-04-19 20:35
 */
public interface ArticlesService extends IService<Articles> {

    /**
     * 获取所有的时间
     *
     * @return
     */
    List<DateYear> getALlDate(String userId);


    /**
     * 获取全部文章数或则根据用户Id获取其对应的文章数
     *
     * @param userId
     * @return
     */
    Integer getArticleCount(String userId);


    /**
     * 根据文章Id获取文章
     *
     * @param articleId
     * @return
     */
    Map<Object, Object> getArticleById(String articleId);


    /**
     * 当阅读文章时候增加文章的阅读量
     *
     * @param articleId
     * @return
     */
    void addView(String articleId);


    /**
     * @param classify 文章分类  default：默认全部文章
     * @param curPage  页
     * @return
     */
    HashMap<String, Object> getArticleBySomeThing(String classify, String curPage, String userId, String articleWay);


    /**
     * 插入文章
     *
     * @param articleTitle   文章标题
     * @param articleContent 文章内容
     * @param classifyId     文章分类ID
     * @param labelNames     文章标签ID
     * @param articleWay     是否原创
     * @return
     */
    String insertArticle(
            String articleTitle,
            String articleContent,
            String classifyId,
            String labelNames,
            String articleWay,
            String diyClassify
    );


    /**
     * 编辑文章
     *
     * @param articleTitle   文章标题
     * @param articleContent 文章内容
     * @param classifyId     文章分类ID
     * @param labelNames     文章标签ID
     * @return
     */
    String updateArticle(
            String articleId,
            String articleTitle,
            String articleContent,
            String classifyId,
            String labelNames,
            String articleWay,
            String diyClassify
    );


    /**
     * 增加文章的评论数量
     *
     * @param articleId
     */
    void addArticleComments(String articleId);


    /**
     * 通过文章Id删除文章
     *
     * @param articleId
     */
    void deleteArticleByArticleId(String articleId);


    /**
     * 通过用户Id获取当前用户所有的文章ID
     *
     * @return
     */
    List<String> getOwnerArticleId();


    /**
     * 获取今日推荐
     *
     * @return
     */
    Map<String, Object> getRecommend();


    /**
     * 获取用户今日推荐
     *
     * @param userId
     * @return
     */
    Map<String, Object> getRecommendByUserId(String userId);
}
